from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
from pyecharts.options import TitleOpts, InitOpts, LabelOpts

from file_define import TextFileReader, JsonFileReader
from data_define import Record

text_file_reader = TextFileReader("D:/Data_EX/数据分析.txt")
json_file_reader = JsonFileReader("D:/Data_EX/数据分析json.txt")

Sep_data:list[Record] = text_file_reader.read_data()
Oct_data:list[Record] = json_file_reader.read_data()
all_data = Sep_data + Oct_data

if __name__ == '__main__':
    data_dict = {}
    for record in all_data:
        # 如果当前记录的省份已在字典中，累加该省份的销售额。
        # 如果省份不在字典中，将其添加并初始化销售额。
        if record.province in data_dict:
            data_dict[record.province] += record.money  # 累加
        else:
            data_dict[record.province] = record.money
    # 柱状图
    bar = Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))
    bar.add_xaxis(list(data_dict.keys()))
    bar.add_yaxis("销售额", list(data_dict.values()), label_opts= LabelOpts(is_show= True, position= "top"))
    bar.set_global_opts(
        title_opts=TitleOpts(title="区域销售额")
    )
    print(data_dict)
    bar.render("区域销售额柱状图.html") # render方法将生成的图表渲染为一个 HTML 文件，用户可以在浏览器中打开该文件以查看图表。
